Implantable medical devices (IMDs) include devices designed to be implanted into a patient. Some examples of these devices include cardiac function management (CFM) devices such as implantable pacemakers, implantable cardioverter defibrillators (ICDs), cardiac resynchronization devices, and devices that include a combination of such capabilities. The devices can be used to treat patients using electrical or other therapy or to aid a physician or caregiver in patient diagnosis through internal monitoring of a patient's condition. The devices may include one or more electrodes in communication with one or more sense amplifiers to monitor electrical heart activity within a patient, and often include one or more sensors to monitor one or more other internal patient parameters. Other examples of implantable medical devices include implantable diagnostic devices, implantable drug delivery systems, or implantable devices with neural stimulation capability.
Implantable medical devices are able to communicate with external devices using wireless communication methods such as radio frequency (RF) or mutual inductance. The external devices are often external programmers that use wireless communication to change performance parameters in the implantable device. Such parameters may interact with each other. For example, programming a first parameter may limit the range of values to which a second parameter can be programmed. Because of this interaction between different programmable parameters, a complex set of constraints typically governs how the set of parameters may be programmed. Consequently, a physician faces a daunting task in programming the whole set of parameters to self-consistent values. Moreover, as new therapies are developed (e.g., congestive heart failure therapies that treat both left and right sides of the heart), more parameters and more interactions between parameters are inevitable, further complicating the task of programming a complete set of parameters to allowable values.
Often, programming one parameter or a set of parameters to a particular value yields invalid results when combined with other interdependent parameter values, causing a complex trial and error analysis for the user. One method of reducing the difficulty of programming parameter values is through establishing manufacturer's default values. This method, however, does not allow the flexibility needed by the physician to tailor a device to treat a particular patient.
To program one or more parameters away from the manufacturer defaults, a user-specified set of parameter values is obtained from the user, and automatically compared to parameter interaction constraints to determine whether a constraint violation has occurred. If no constraint violation exists, the user-specified parameters are accepted into the programmer for programming into the implantable device. However, if a constraint violation does exist, the user may be advised of one or more of the violations. However, it is then typically left to the user to modify the existing set of parameter values to try to remove the violation without inadvertently triggering another violation. This can be a complex process and may decrease the productivity of the user (in most cases a physician), and increase the possibility of programming errors.